
public class NCBITaxonomy implements Comparable<NCBITaxonomy>{
	private int UID;
	private int parentUID;
	private int mergedUID;
	private String sciName;
	private String rank;
	private boolean invalid;
	private boolean deleted;
	
	NCBITaxonomy(int UID, int parentUID, String sciName, String rank) {
		this.UID = UID;
		this.parentUID = parentUID;
		this.sciName = sciName;
		this.rank = rank;
		this.invalid = false;
		this.deleted = false;
	}
	
	NCBITaxonomy(int UID, String sciName) {
		this.UID = UID;
		this.sciName = sciName;
		this.rank = null;
		this.invalid = false;
		this.deleted = false;
	}
	
	NCBITaxonomy(int UID) {
		this.UID = UID;
		this.sciName = null;
		this.rank = null;
		this.invalid = false;
		this.deleted = false;
	}
	
	public int getUID() {
		return UID;
	}
	
	public int getParentUID() {
		return parentUID;
	}
	
	public String getSciName() {
		return sciName;
	}
	
	public String getRank() {
		return rank;
	}
	
	public int getMergedUID() {
		return mergedUID;
	}
	
	public void setParentUID(int parentUID) {
		this.parentUID = parentUID;
	}
	
	public void setRank(String rank) {
		this.rank = rank;
	}
	
	public void setParentUIDAndRank(int parentUID, String rank) {
		this.parentUID = parentUID;
		this.rank = rank;
	}
	
	public void setInvalid(int mergedUID) {
		invalid = true;
		this.mergedUID = mergedUID;
	}
	
	public void setDeleted() {
		deleted = true;
	}
	
	public boolean isInvalid() {
		return invalid;
	}
	
	public boolean isDeleted() {
		return deleted;
	}
	
	@Override
	public int compareTo(NCBITaxonomy ncbiTax) {
		return this.sciName.compareTo(ncbiTax.sciName);
	}
}
